package org.example.flea_market_mvc.param;

import java.time.LocalDateTime;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 评价参数类
 * 用于接收前端传入的用户评价相关请求参数
 */
@Data
public class RatingParam {
    @NotNull(message = "评分用户ID不能为空")
    private Integer raterId;       // 评分用户ID
    @NotNull(message = "被评分用户ID不能为空")
    private Integer ratedId;       // 被评分用户ID
    @NotNull(message = "评价关联的订单ID不能为空")
    private Integer orderId;       // 评价关联的订单ID
    @NotNull(message = "评价关联的商品ID不能为空")
    private Integer productId;     // 评价关联的商品ID
    @NotNull(message = "描述相符评分不能为空")
    @Min(value = 1, message = "描述相符评分范围为1-5星")
    @Max(value = 5, message = "描述相符评分范围为1-5星")
    private Integer descriptionRating;  // 描述相符评分（1-5星）
    @NotNull(message = "响应速度评分不能为空")
    @Min(value = 1, message = "响应速度评分范围为1-5星")
    @Max(value = 5, message = "响应速度评分范围为1-5星")
    private Integer responseRating;     // 响应速度评分（1-5星）
    @NotNull(message = "交易评分不能为空")
    @Min(value = 1, message = "交易评分范围为1-5星")
    @Max(value = 5, message = "交易评分范围为1-5星")
    private Integer transactionRating;  // 交易评分（1-5星）
    @Size(max = 1000, message = "文字评价内容长度不能超过1000")
    private String comment;          // 文字评价内容
    @Size(max = 1000, message = "评价图片URL长度不能超过1000")
    private String images;           // 评价图片URL（多张图片用逗号分隔）
}